package com.meicloud.license.appl.service;

import com.meicloud.license.appl.vo.LicenseDto;
import com.meicloud.license.appl.vo.LicenseRegisterDto;

/**
 * License接口
 *
 * @author zhanghui145
 * @date 2022/1/10 14:12
 * @since 1.0.0
 */
public interface LicenseService {

    /**
     * 租户注册，获取注册码
     *
     * @param register 注册参数
     * @return 注册码
     */
    String generateRegisterCode(LicenseRegisterDto register);

    /**
     * 根据注册码，生成授权码
     *
     * @param registerCode 注册码
     * @return 授权码
     */
    String generateLicenseCode(String registerCode);


    /**
     * 根据注册码和授权码注册该注册码所代表的租户
     *
     * @param registerCode 注册码
     * @param licenseCode 授权码
     * @return 是否成功
     */
    boolean register(String registerCode, String licenseCode);

    /**
     * 查询租户的license状态
     *
     * @param name    租户名
     * @param sysIp   系统ip
     * @param sysName 系统名
     * @return license状态
     */
    LicenseDto licenseStatus(String name, String sysIp, String sysName);
}
